<html xmlns="http://www.w3.org/1999/xhtml">
<head>

  <title>Jailer - FAQ</title>
  <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
  <meta name="keywords" content="Data Export Tool" />
  <meta name="description" content="data export referential integrity java jdbc dbms" />
  <link rel="stylesheet" type="text/css" href="styles.css" />
  <link rel="shortcut icon" href="favicon.ico" />
</head>

<body left-margin="0" top-margin="0">
  <div align="left">
    <table style="text-align: left; position: absolute; left: 0pt; top: 0pt;" border="0"
    cellpadding="0" cellspacing="0" height="407" width="100%">
      <tbody>
        <tr>
          <td colspan="2" class="bannerbackground" height="33" width="100%">
            <table border="0" cellpadding="4" cellspacing="0" width="100%">
              <tbody>
                <tr>
                  <td><a href="https://github.com/Wisser/Jailer"><img src="logo.png" hspace="10" /></td> <td class="slogan" width="100%"></a>

                   

                  <td style="text-align: right; width: 100%;"><table border="0" cellpadding="0" cellspacing="0">
                      <tbody>
                        <tr>
                           <td><a href="https://github.com/Wisser/Jailer"><img src="GitHub-Mark-64px.png" title="GitHub" /></a> </td></tr><tr style="height: 100%;"><td>&nbsp;</td>
                        </tr>
                      </tbody>
                    </table> </td>
                </tr>
              </tbody>
            </table>
          </td>
        </tr>

        <tr>
          <td colspan="2" class="nav1background"  width="100%">&nbsp;
          <b><font color="#FFFFFF"><a href="home.htm" target="_self" class=
          "tlink">&nbsp;Home&nbsp;</a> <a href="quicktour.htm" target="_self"
          class="tlink">&nbsp;Quick Tour&nbsp;</a> <a href="exporting-data.htm"
          target="_self" class="tlink">&nbsp;Tutorial&nbsp;</a> <a href=
          "data-browsing.html" target="_self" class="tlink">&nbsp;Data Browser&nbsp;</a> <a class="tlink" href="videos.html" target="_self">&nbsp;Videos&nbsp;</a> 
          <a href="faq.html" target="_self" class="tlinkA">&nbsp;FAQ&nbsp;</a> 
          <a href="api.html" target="_self" class="tlink">&nbsp;API&nbsp;</a> 
          <a href="design.htm" target="_self" class=
          "tlink">&nbsp;Documentation&nbsp;</a> <a href=
          "http://sourceforge.net/forum/?group_id=197260" target="_self" class=
          "tlink">&nbsp;Forum&nbsp;</a> <a href=
          "http://sourceforge.net/project/showfiles.php?group_id=197260" target="_self"
          class="tlink">&nbsp;Download&nbsp;</a>  &nbsp;&nbsp;&nbsp;
          &nbsp;&nbsp;&nbsp;</font></b></td>
        </tr>

        <tr>
          <td colspan="2" class="spacer" width="100%"></td> </tr><tr><td class="lmenucontainer">&nbsp;</td>
        </tr>

        <tr>
          <td class="lmenucontainer" height="100%" valign="top" width="14%">
            <div align="center">
              <center>
                <table border="0" cellpadding="0" cellspacing="0" width="100%">
                  <tbody>
                    <tr>
                      <td height="6px" width="100%"> </td>
                    </tr>
                  </tbody>
                </table>
              </center>
            </div>

            <ul>
              <li><a href="faq.html" target="_self" class="llinkA">FAQ</a> </li>
            </ul>

            <table border="0" cellpadding="5" cellspacing="0" width="100%">
              <tbody>
                <tr>
                  <td class="content2background"><img style="width: 160px; height: 1px;"
                  alt="" src="architecture-Dateien/vgradp.gif" /></td>
                </tr>
              </tbody>
            </table>

            <p>&nbsp;</p>
          </td>

          <td class="contentbackground" height="418" valign="top" width="86%">
            <div align="right">
              <table border="0" cellpadding="0" cellspacing="0" height="542" width="98%">
                <tbody>
                  <tr>
                    <td class="contentbackground" height="21" width="100%">&nbsp;</td>
                  </tr>

                  <tr>
                    <td class="content" height="520" valign="top" width="100%">
                      
                      <big><span style="font-weight: bold;">Frequently Asked
                      Questions<br />
                      <br /></span></big>

                      <table style="text-align: left;" border="0" cellpadding="3"
                      cellspacing="0">
                        <tbody>
                          <tr>
                            <td style=
                            "font-weight: bold; background-color: rgb(242, 242, 242);">
                            Q&nbsp;</td>

                            <td style=
                            "font-weight: bold; background-color: rgb(242, 242, 242);">
                            Why am I getting so much data back?&nbsp; &nbsp; &nbsp;
                            &nbsp; &nbsp; &nbsp; &nbsp;</td>
                          </tr>

                          <tr>
                            <td style="vertical-align: top;">A</td>

                            <td>Each association will be traversed in both directions,
                            unless there is a restriction defined. If, for example, the
                            subject table is <span style=
                            "font-style: italic;">employee</span>, and the association
                            from&nbsp;<span style="font-style: italic;">department</span>
                            table to&nbsp;<span style=
                            "font-style: italic;">employee</span> table is enabled, you
                            will not only get all departments associated with any subject
                            employee, but also all employees associated with one of these departments.<br />
                            <br />
                            If you get lines that you do not want to get, you need to make a further restriction. The <span style=
                            "font-style: italic;">Progress Panel</span> can help you in such a case.
                            It shows the chain of associations for each
                            exported row back to a subject row, where the export
                            starts. I recommend reading the <a href=
                            "exporting-data.htm">tutorial</a>  that explains these things.<br />
                            <br />
                            Instead of adding all restrictions you need, starting from
                            the unrestricted model, you can also go the opposit way: at
                            first disable all associations (except dependencies) via the menu item
                            <span style="font-style: italic;">"Edit-&gt;Disable all
                            associations</span>". Then remove restrictions
                            until you get all the rows you are looking for.<br />
                            &nbsp;<br />
                            It is easier to get a working extraction model in this way, but it is more difficult to ensure that the model is not too restrictive, i.e. that you get <b>all</b> the rows you want.<br><br />

                            In my experience the best way to define an extraction model
                            is to use the "<span style="font-weight: bold;">Closure</span>" view.<br />
                            &nbsp;<br />
                            The closure view lists all tables that are directly or
                            indirectly associated with the subject table (where the
                            export starts), according to the restrictions, ordered by
                            distance.<br />
                            &nbsp;<br />
                            Check each table of this list from top to bottom. If you
                            don't want to have rows from the table to be exported, select
                            the table and disable the association which will be automatically selected (the context menu of the table is also available here). The table disapears from the list as soon as
                            it is no longer associated with the subject.&nbsp;<br />
                            <br />
                            <b>You could also first check the tables with the highest degree (the degree of a table is the total number of adjacent tables that can be reached directly with an enabled association.) this way. These are often the tables that increase the closure significantly and therefore have many associations to be restricted.
                            </b><br />
                            <br />
                            In this way, you simply get an extraction model that extracts rows only from tables from which you want to extract data.&nbsp;<br />
                            <br />
                            Finally, check all associations between the remaining
                            tables.<br />
                            &nbsp;<br /></td>
                          </tr>

                          <tr>
                            <td style=
                            "font-weight: bold; background-color: rgb(242, 242, 242);">
                            Q&nbsp;</td>

                            <td style=
                            "font-weight: bold; background-color: rgb(242, 242, 242);">
                            What does $DISTANCE and $IS_SUBJECT mean?</td>
                          </tr>

                          <tr>
                            <td style="vertical-align: top;">A</td>

                            <td>
                              $DISTANCE and $IS_SUBJECT are special expressions&nbsp;used
                              in restriction conditions in order to define restriction
                              models based on topological properties of rows.<br />
                              <br />

                              <table style="text-align: left; width: 100%;" border="0"
                              cellpadding="2" cellspacing="0">
                                <tbody>
                                  <tr>
                                    <td style="font-weight: bold;">Expression</td>

                                    <td style="font-weight: bold;">Type</td>

                                    <td></td>
                                  </tr>

                                  <tr>
                                    <td style="vertical-align: top;"><b>A.$DISTANCE</b> or <b>B.$DISTANCE</b></td>

                                    <td style="vertical-align: top;">INTEGER &nbsp;</td>

                                    <td>Minimum length of all paths from the row back to
                                    any subject row.<br />
                                    The distance of a subject row is 0.</td>
                                  </tr>

                                  <tr>
                                    <td><b>A.$BIRTHDAY</b></td>

                                    <td>INTEGER</td>

                                    <td>Synonym for A.$DISTANCE</td>
                                  </tr>

                                  <tr>
                                    <td><b>A.$IS_SUBJECT</b></td>

                                    <td>BOOLEAN</td>

                                    <td>Synonym for A.$DISTANCE=0</td>
                                  </tr>

                                  <tr>
                                    <td><b>$IN_DELETE_MODE</b></td>

                                    <td>BOOLEAN</td>

                                    <td>Is <i>true</i> during "Delete Reduction" stage, otherwise <i>false</i></td>
                                  </tr>
                                </tbody>
                              </table><br />
                             
                            </td>
                          </tr>
							
						  <tr>
                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            Q</td>

                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            What is the preferred way to update an existing data model and extraction model, when the database has new schema changes?</td>
                          </tr>

                          <tr>
                            <td style="vertical-align: top;">A</td>

                            <td>To update the data model, open the extraction model editor and select "Data Model" -> "Analyze Database". <br>If necessary, several times for each schema, if there are several. <br><br>
When the data model is updated, each extraction model will be migrated on loading. <br>Tables and associations that no longer exist after the database changes are silently removed from the extraction models as well.<br><br>
Associations that are newly added and are relevant to the extraction model (that is: directly or indirectly connected to a subject table) are listed in the "Model Migration Tool" dialog. (There is a button "Migration pending" at the top to open this dialog again after you have closed it).<br><br>
In the "Model Migration Tool" each new association can be examined and either restricted or - with the "Checked" button - marked as checked. <br>When all associations have been checked or restricted, the migration is finished.<br><br>
if you save an extraction model before migration is finished, you can continue the migration after loading it again.<br><br>
  </td>
                          </tr>

                          <tr>
                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            Q</td>

                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            How do I anonymize the extracted data?</td>
                          </tr>

                          <tr>
                            <td style="vertical-align: top;">A</td>

                            <td>It's possible to anonymize the extracted data by <a href=
                            "filters.html" target="_self">defining filters</a>  (via
                            "<span style="font-style: italic;">Edit</span>" menu
                            "<span style="font-style: italic;">Filter editor...</span>",
                            or table's context menu)<br />
                            <br />
                            A filter is an assignment of an SQL expression to a table
                            column. The column values will be replaced by the result of
                            the expression when the export file is written.<br />
                            &nbsp;<br />
                            For example:<br />
                            &nbsp;<br />
                            In order to substitute the values of the column PERSON.SSN
                            with the constant value '123', define the filter:
                            <span style="font-style: italic;"><br />
                            PERSON.SSN := '123'</span><br />
                            &nbsp;<br />
                            The filter<br />
                            <span style="font-style: italic;">PERSON.SSN :=
                            substr(${old-value}, 1, length(${old-value}) - 3) ||
                            '***'</span><br />
                            replaces the last 3 characters of the SSN with '***'<br />
                            ${old-value} is a synonym for the filtered column.<br />
                            &nbsp;<br />
                            The filter:<br />
                            <span style="font-style: italic;">PERSON.SSN := (SELECT SSN
                            FROM TEST_SSN ORDER BY RAND()</span><br style=
                            "font-style: italic;" />
                            <span style="font-style: italic;">&nbsp; &nbsp; &nbsp; &nbsp;
                            &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
                            &nbsp; &nbsp; &nbsp;FETCH FIRST 1 ROWS ONLY)</span><br style=
                            "font-style: italic;" />
                            would replace the SSN with a randomly chosen SSN from a table
                            holding test SSNs (IBM DB2)<br />
                            &nbsp;<br /></td>
                          </tr>


                          <tr>
                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            Q</td>

                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">Is
                            it possible to avoid the creation of JAILER_* tables in the
                            database?</td>
                          </tr>

                          <tr>
                            <td style="vertical-align: top;">A</td>

                            <td>Set the working-table scope to "local database" ("Data
                            Export" dialog) to avoid the creation of that tables in your
                            database. The tables will then be created in a local database
                            (H2).<br />
                            For DB2, Oracle and PostgreSQL, it is also possible to create
                            the tables as temporary tables.<br />
                            &nbsp;</td>
                          </tr>

                          <tr>
                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            Q</td>

                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            I'm getting the message "Table has no primary key". What's
                            wrong?</td>
                          </tr>

                          <tr>
                            <td style="vertical-align: top;">A</td>

                            <td>Jailer cannot handle tables without a primary key.
                            Exporting data is not possible if the subject table is associated with a table without a primary key. In this case, you should manually define a primary key in the data model of the tool (not in the database!) using the <i>Data Model Editor</i>. Note that a key must be unique.<br />
                            <br />

                            However, when working with Oracle or PostgreSQL, you can use the <i>rowid</i> respectively the <i>ctid</i> pseudo columns instead of primary keys. <br>
                            See section <i>"Row identification"</i> in the <i>"Data Export"</i> dialog.
                            <br />
                            &nbsp;</td>
                          </tr>

                          <tr>
                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            Q</td>

                          <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            How can I safely export rows without their parents?<br /></td>
                          </tr>

                          <tr>
                            <td style="vertical-align: top;">A</td>

                            <td>If a foreign key of a table is nullable, a "<i>null</i>" filter on it (resp. on all columns of a composite foreign key) causes only the foreign key columns of those rows to be filled with "<i>null</i>", whose parent row is not exported as well.<br>
                            In the same way, only the foreign key columns of those rows are set to "<i>null</i>" when deleting, which are not deleted themselves but their parent.<br>
                            See <a href="filters.html#nullfilter">filter documentation</a> <br /><br /></td>
                          </tr>

<tr>
                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            Q</td>

                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            The GUI is slow, what can I do?<br /></td>
                          </tr>

                          <tr>
                            <td style="vertical-align: top;">A</td>

                            <td>Due to the dynamic nature of the layout algorithm, the
                            table-association graph is permanently redrawn. It seems that
                            this consumes too much cpu time on some systems. However,
                            there is a parameter called "<span style=
                            "font-style: italic;">animation step time</span>" which
                            determines the minimum time (in ms) for one animation step.
                            Increasing that parameter (<span style=
                            "font-style: italic;">Settings-&gt;Animation step time</span>)
                            will reduce the cpu utilization.<br /><br /></td>
                          </tr>

                          <tr id="multiuser">
                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            Q</td>

                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            How do I setup multi-user mode?<br /></td>
                          </tr>

                          <tr>
                            <td style="vertical-align: top;">A</td>

                            <td>
                            Unzip the "jailer-version.zip" file and create an (empty) file ".multiuser" in the directory "jailer".
All model and settings files are then stored in a folder named ".jailer" in the user's home directory.
                            <br /><br /></td>
                          </tr>

                          <tr>
                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            Q</td>

                            <td style=
                            "background-color: rgb(242, 242, 242); font-weight: bold;">
                            Why do text and buttons on my Full HD, UHD or 4K displays look so small?<br /></td>
                          </tr>

                          <tr>
                            <td style="vertical-align: top;">A</td>

                            <td>
                            Java JRE 8 does not support HiDPI graphics. Therefore it is strongly recommended to use Java <b>JRE 11</b> (or above).
                            <br /><br /></td>
                          </tr>
                        </tbody>
                      </table>
                    </td>
                  </tr>
                </tbody>
              </table>
            </div>

            <p><br /></p>

            <p><br /></p>

            <p><br />
            &nbsp;</p>
          </td>
        </tr>

        <tr>
          <td height="12" valign="top" width="14%"><br /></td>

          <td><br /></td>
        </tr>
      </tbody>
    </table>
  </div>
</body>
</html>
